package com.lei.leetcode;

/**
 * @Author LeiXiaoLei
 * @Date 2022/8/12 20:11
 * @Version 1.0
 * <p>
 * 给定一个 n 个元素有序的（升序）整型数组 nums 和一个目标值 target  ，写一个函数搜索 nums 中的 target，如果目标值存在返回下标，否则返回 -1。
 * <p>
 * 来源：力扣（LeetCode）
 * 链接：https://leetcode.cn/problems/binary-search
 * 著作权归领扣网络所有。商业转载请联系官方授权，非商业转载请注明出处。
 */
public class S_704 {
    public int search(int[] nums, int target) {
        return search(nums, 0, nums.length, target);
    }

    private int search(int[] nums, int l, int r, int target) {
        if (l > r) return -1;
        int mid = l + (r - l) / 2;
        if (target == nums[mid]) return mid;
        if (target < nums[mid]) return search(nums, l, mid, target);
        return search(nums, mid + 1, r, target);
    }
}
